package cn.minhx.domain.strategy.service.armory;

/**
 * 策略抽奖调度
 *
 * @author min
 */
public interface IStrategyDispatch {

    /**
     * 【抽奖】获取策略装配随机奖品
     *
     * @param strategyId 策略ID
     * @return 奖品ID
     */
    Long getRandomAwardId(Long strategyId);

    /**
     * 【抽奖】获取策略装配随机奖品
     *
     * @param strategyId      策略ID
     * @param ruleWeightValue 规则权重值
     * @return 奖品ID
     */
    Long getRandomAwardId(Long strategyId, String ruleWeightValue);

    /**
     * 减库存
     *
     * @param strategyId 策略ID
     * @param awardId    奖品ID
     * @return 减库存结果
     */
    Boolean subtractAwardStock(Long strategyId, Long awardId);

}
